package com.hyt.it.ogt.kq.service.bm.model.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.hyt.core.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 发票详细信息表
 * </p>
 *
 * @author liteng
 * @since 2020-08-28
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("bm_invoice")
@ApiModel(value="Invoice对象", description="发票详细信息表")
public class Invoice extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "企业id")
    private String appId;

    @ApiModelProperty(value = "接口ID,保留字段")
    private String interfaceId;

    @ApiModelProperty(value = "接口接口编码 DFXJ1001:开票 DFXJ1004:查询  ")
    private String interfaceCode;

    @ApiModelProperty(value = "数据交换请求发起方代码,固定值DZFPQZ")
    private String requestCode;

    @ApiModelProperty(value = "数据交换请求发出时间 格式 YYYY-MM-DDHH24:MI:SS")
    private LocalDateTime requestTime;

    @ApiModelProperty(value = "数据交换请求接受方代码 标识数据交换请求接受方固定值：DS")
    private String responseCode;

    @ApiModelProperty(value = "数据交换流水号 requestCode+interfaceCode+8 位日期+9 位唯一随机字符串")
    private String dataExchangeId;

    @ApiModelProperty(value = "压缩标识保留字段")
    private String zipCode;

    @ApiModelProperty(value = "回调地址")
    private String callbackUrl;

    @ApiModelProperty(value = "回调地址不为空时必填。V1.2: 回调规范参考指定版本号的增值税盘开票回调地址规范文档")
    private String callbackVersion;

    @ApiModelProperty(value = "税盘盘号")
    private String skpNo;

    @ApiModelProperty(value = "税盘类型 税盘类型。1-税控盘；2-金税盘")
    private String skpLx;

    @ApiModelProperty(value = "发票请求流水号每个请求流水号只能开一次,流水号前面以公司名称前缀例")
    private String fpqqlsh;

    @ApiModelProperty(value = "026 电子发票 004增值税专票，007增值税普票")
    private String fplxdm;

    @ApiModelProperty(value = "0-蓝字发票；1-红字发票")
    private String kplx;

    @ApiModelProperty(value = "编码表版本号 保留字段，无需填写")
    private String bmbBbh;

    @ApiModelProperty(value = "0：普通征税 2：差额征税（暂不支持差额征税）")
    private String zsfs;

    @ApiModelProperty(value = "销售方纳税人识别号")
    private String xsfNsrsbh;

    @ApiModelProperty(value = "销售方名称")
    private String xsfMc;

    @ApiModelProperty(value = "销售方地址、电话")
    private String xsfDzdh;

    @ApiModelProperty(value = "销售方银行账号")
    private String xsfYhzh;

    @ApiModelProperty(value = "购买方纳税人识别号")
    private String gmfNsrsbh;

    @ApiModelProperty(value = "购买方名称")
    private String gmfMc;

    @ApiModelProperty(value = "购买方地址、电话")
    private String gmfDzdh;

    @ApiModelProperty(value = "购买方银行账号")
    private String gmfYhzh;

    @ApiModelProperty(value = "注册电话")
    private String gmfSjh;

    @ApiModelProperty(value = "购买方电子邮箱")
    private String gmfDzyx;

    @ApiModelProperty(value = "购买方发票通平台账户")
    private String fptZh;

    @ApiModelProperty(value = "抬头类型 1 企业单位 2 个人/非企业单位")
    private String taxType;

    @ApiModelProperty(value = "开户银行")
    private String bank;

    @ApiModelProperty(value = "购买方手机号，可以多个，用逗号分开，用于接收和归集电子发票购买方手机号与电子邮箱不能同时为空")
    private String regPhone;

    @ApiModelProperty(value = "开票类型-1 个人 2 团体")
    private String bussType;

    @ApiModelProperty(value = "用于用户微信公众号推送电子发票信息")
    private String wxOpenid;

    @ApiModelProperty(value = "开票人")
    private String kpr;

    @ApiModelProperty(value = "收款人")
    private String skr;

    @ApiModelProperty(value = "复核人")
    private String fhr;

    @ApiModelProperty(value = "原发票代码 红字发票时必须")
    private String yfpDm;

    @ApiModelProperty(value = "原发票号码 红字发票时必须")
    private String yfpHm;

    @ApiModelProperty(value = "价税合计")
    private BigDecimal jshj;

    @ApiModelProperty(value = "合计金额 不含税")
    private BigDecimal hjje;

    @ApiModelProperty(value = "合计税额")
    private BigDecimal hjse;

    @ApiModelProperty(value = "合计金额 最多保留至小数点后 2 位，当 ZSFS 为2 时扣除额为必填项")
    private BigDecimal kce;

    @ApiModelProperty(value = "备注")
    private String bz;

    @ApiModelProperty(value = "微信用于预制卡券的唯一识别 ID")
    private String wxOrderId;

    @ApiModelProperty(value = "微信用于预制卡券的唯一识别 ID")
    private String wxAppId;

    @ApiModelProperty(value = "使用支付宝扫描开票时记录的用户UID")
    private String zfbUid;

    @ApiModelProperty(value = "特殊票种标识 00:不是 01:农产品销售 02:农产品收购 08:成品油销售")
    private String tspz;

    @ApiModelProperty(value = "全局唯一订单 ID")
    private String qjOrderI;

    @ApiModelProperty(value = "0000 成功，其他为错误")
    private String returnCode;

    @ApiModelProperty(value = "消息描数")
    private String returnMessage;

    @ApiModelProperty(value = "业务结果-0:未请求 1:请求成功 2:开票请求失败")
    private String bussResult;

    @ApiModelProperty(value = "1:待开具  0: 成功  2：失败")
    private String rsCode;

    private String rsMsg;

    @ApiModelProperty(value = "项目id")
    private String projectId;
	
	@ApiModelProperty(value = "机构id")
    private String officeId;


}
